package main

import (
	"context"
	"google.golang.org/grpc"
	"log"
	"net"
)

// server 实现了 Greeter 服务接口
type server struct{}

// UploadImageEmbedding 实现了 Greeter 服务接口中的 UploadImageEmbedding 方法
func (s *server) UploadImageEmbedding(ctx context.Context, req *EmbeddingRequest) (*EmbeddingReply, error) {
	log.Printf("Received URL: %s", req.Url)
	// 在这里执行处理图片的逻辑，这里只是一个示例，返回一个成功的响应
	return &EmbeddingReply{
		Message:   "Embedding extracted successfully",
		IsSuccess: true,
	}, nil
}

// 以下方法必须实现，因为Greeter服务中包含了GreeterServer接口，它包含了一个空的方法。
func (s *server) mustEmbedUnimplementedGreeterServer() {}

func main() {
	// 监听端口
	lis, err := net.Listen("tcp", ":50051")
	if err != nil {
		log.Fatalf("failed to listen: %v", err)
	}
	// 创建 gRPC 服务器
	s := grpc.NewServer()
	// 在 gRPC 服务器上注册服务
	RegisterGreeterServer(s, &server{})
	log.Println("Server started...")
	// 启动 gRPC 服务器
	if err := s.Serve(lis); err != nil {
		log.Fatalf("failed to serve: %v", err)
	}
}
